package com.sharkburner.aeris.dao;

import java.util.List;

import org.hibernate.criterion.DetachedCriteria;

import com.sharkburner.aeris.dao.entity.Article;
import com.sharkburner.aeris.dao.entity.ArticleState;
import com.sharkburner.aeris.dao.entity.User;
import com.sharkburner.aeris.dao.entity.UserSite;

/**
 * Article dao
 * 
 * @author inartea
 * 
 */
public interface ArticleDao {

    void save(Article article);

    List<Article> findByLink(String link);

    DetachedCriteria findAll();

    List<Article> findAll(User user);

    List<Article> findAll(UserSite userSite);

    List<Article> findAll(UserSite userSite, ArticleState state);
}
